www.gusucode.com > matlab编程曲线的高斯拟合,去除趋势性 对于一般非平稳序列的分析源码程序 > matlab编程曲线的高斯拟合,去除趋势性 对于一般非平稳序列的分析源码程序/code/main.m
num=input('Please enter the number :'); x=1:num; [fid,message]=fopen('F:/shiyan/co2zhi.txt','r') [y,count]=fscanf(fid,'%f',num); fclose(fid); ymax=max(y); y=y/ymax; ymin=min(y); y=y-ymin; y=y'; y0=-log(y+eps); p=polyfit(x,y0,2); sigma2=1.0/p(1); fid2=fopen('F:\shiyan\sigma2.txt','wt'); fprintf(fid2,'%f\n',sigma2); fclose(fid2); a=(p(2)*sigma2)/(-2); fid3=fopen('F:\shiyan\a.txt','wt'); fprintf(fid3,'%f\n',a); fclose(fid3); h=exp(a^2/sigma2-p(3))+ymin; yt=h.*exp(-((x-a).^2/sigma2)); plot(x,y,'ob',x,yt,'-r'),title('拟合曲线'); xlabel('x'); ylabel('y'); figure yf=y-yt; %plot(x,yf,'*r'),title('平稳序列'); %xlabel('x'); %ylabel('yf'); %figure yf=yf'; yf=yf-sum(yf)./num; fid1=fopen('F:\shiyan\data.txt','wt'); fprintf(fid1,'%f\n',yf); fclose(fid1);